This application is based on and claims the benefit of German Patent Application No. 198 22 543.1 filed May 20, 1998, which is incorporated by reference herein.
The subject of the invention is a method for assigning tasks within a group of at least two server data processing nodes, a data processing system, a client data processing node and a machine-readable storage medium.
The invention is based on a load distribution method customary in client-server applications.
A client computer is connected to several server computers via a communications network. The server computers periodically send messages to the client computer that provide information on their usage. The client computer stores this information. If the client computer has a data processing task it needs to assign, it uses the stored usage information of the server computers and selects the server computer that has the lowest usage. It then assigns the task to the server computer that it selected in this manner by sending a request for processing the data processing task and thus assigns the data processing task for processing to this particular server. This process ensures that the server computers all are used evenly.
This process is disadvantageous in that it entails a high traffic volume on the communications network. All server computers must send periodic messages. In order to obtain a current data on the usage, the time periods in between messages must not be very long.
The object of the invention is to assign tasks from client data processing nodes to server data processing nodes while maintaining an even use of the server data processing nodes and while keeping the communications traffic between client and server data processing nodes at a minimum.
The object of the invention is attained with the help of a process for assigning tasks within a group of at least two server data processing nodes, a data processing system, a client data processing node and a machine-readable storage medium.
Client and server data processing nodes can be comprised of different computers of a multi-computer system, of different processors of a multi-processor system or of different processes or objects that run on a system platform.
The invention is based on the concept to first try to assign a task to a cyclically selected server data processing node and if the server data processing node does not accept the task (because it already runs at capacity), to try, repeatedly if necessary, to assign the task to a randomly selected server data processing node. A first cyclic assignment attempt, therefore, is followed by one or several random assignment attempts.
Tests showed that this particular assignment scheme results in an even use of the server data processing nodes in all load areas and that the number of the required assignment attempts is minimized in the process. The assignment scheme also can be carried out with only a small number of computers that is mostly independent of the number of client and server data processing nodes of the data processing system. The method in accordance with the invention thus combines very good performance with few technical requirements.
Another advantage of the invention is the fact that one or several messages are exchanged only when a task is assigned; apart from this, no other exchange of information is required between the client and the server data processing nodes. This reduces the communications load considerably, especially when a large number of client and server data processing nodes are involved.
Advantageous embodiments of the invention are described in the sub-claims.
It is especially advantageous when the client data processing nodes make the cyclical selection independent from each other. This means that there must be no synchronization between the client data processing nodes.